package cn.seaboot.admin.core.dao;

import cn.seaboot.admin.core.bean.Dictionary;
import cn.seaboot.admin.mvc.argument.ModifyArgument;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * DAO
 *
 * @author Mr.css
 */
@Repository
public interface DictionaryDao {

    /**
     * 增
     *
     * @param dictionary pojo
     * @return affected rows
     */
    int insert(Dictionary dictionary);

    /**
     * 删
     *
     * @param id id
     * @return affected rows
     */
    int deleteById(Integer id);

    /**
     * 删
     *
     * @param tableName  表名
     * @param columnName 列名
     * @return affected rows
     */
    int deleteByTableName(String schemaName, String tableName, String columnName);

    /**
     * 改
     *
     * @param dictionary pojo
     * @return affected rows
     */
    int updateSampleById(Dictionary dictionary);

    /**
     * 快捷更新
     *
     * @param arg 字段信息
     * @return affected rows
     */
    int updateFieldById(ModifyArgument arg);

    /**
     * 查
     *
     * @param id id
     * @return pojo
     */
    Dictionary selectById(Integer id);

    /**
     * 查
     *
     * @param schemaName 库名
     * @param tableName  表名
     * @param columnName 列名
     * @return pojo
     */
    List<Dictionary> selectByType(String schemaName, String tableName, String columnName);

    /**
     * 查询全部
     *
     * @param schemaName 库名
     * @return pojo
     */
    List<Dictionary> selectAll(String schemaName);
}
